using System;
using System.ComponentModel.DataAnnotations;
using MESBaseis.Domain.BaseEntities;

namespace MESBaseis.Domain.XZY
{
    /// <summary>
    /// 生产物品实体
    /// </summary>
    public class ProductionItemModel : BaseModel
    {
        /// <summary>
        /// 物品编号
        /// </summary>
        [Required]
        [StringLength(50)]
        public string ItemNumber { get; set; } = string.Empty;

        /// <summary>
        /// 物品名称
        /// </summary>
        [Required]
        [StringLength(200)]
        public string ItemName { get; set; } = string.Empty;

        /// <summary>
        /// 批次号
        /// </summary>
        [StringLength(50)]
        public string? BatchNumber { get; set; }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime? ProductionDate { get; set; }

        /// <summary>
        /// 到期日期
        /// </summary>
        public DateTime? ExpiryDate { get; set; }

        /// <summary>
        /// 仓库ID
        /// </summary>
        public int? WarehouseId { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        [StringLength(200)]
        public string? WarehouseName { get; set; }

        /// <summary>
        /// 库存数量
        /// </summary>
        public int InventoryQuantity { get; set; } = 0;

        /// <summary>
        /// 物品类型
        /// </summary>
        [StringLength(100)]
        public string? ItemType { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        [StringLength(200)]
        public string? Specification { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        [StringLength(20)]
        public string? Unit { get; set; }

        /// <summary>
        /// 单价
        /// </summary>
        public decimal? UnitPrice { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(500)]
        public string? Remarks { get; set; }
    }
}